home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK2.toast / Development Kits (Disc 2) / OpenDoc Development Framework / ODFDev / ODF / Framewrk / FWPart / FWTrackr.h < prev    next >
Encoding:
Text File  |  1996-09-17  |  5.3 KB  |  180 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                FWTrackr.h
  4. //    Release Version:    $ ODF 2 $
  5. //
  6. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9. //
  10. //    Three Classes:
  11. //            FW_CTracker
  12. //            FW_CThreeStepTracker
  13. //            FW_COneStepTracker
  14. //
  15. //
  16.  
  17. #ifndef FWTRACKR_H
  18. #define FWTRACKR_H
  19.  
  20. #ifndef FWPOINT_H
  21. #include "FWPoint.h"
  22. #endif
  23.  
  24. #ifndef FWEXCLIB_H
  25. #include "FWExcLib.h"
  26. #endif
  27.  
  28. //========================================================================================
  29. //    Forward Declaration
  30. //========================================================================================
  31.  
  32. class ODFacet;
  33. class ODSession;
  34. class FW_CView;
  35. class FW_CMouseEvent;
  36. class FW_CPrivBaseScroller;
  37.  
  38. //========================================================================================
  39. //    class FW_CBaseTracker
  40. //========================================================================================
  41.  
  42. // [JEL] These were declared as autodestruct objects, but they don't seem to require it???
  43.  
  44. class FW_CBaseTracker
  45. {
  46. //----------------------------------------------------------------------------------------
  47. //    Initialization/Destruction
  48. //
  49. public:
  50.     FW_CBaseTracker(Environment* ev, FW_CView* view, ODFacet* facet);
  51.     virtual ~FW_CBaseTracker();
  52.     
  53. //----------------------------------------------------------------------------------------
  54. //    New API
  55. //
  56. public:    
  57.     // ----- Tracking -----
  58.     virtual FW_CPoint     BeginTracking(Environment* ev, 
  59.                             const FW_CPoint& anchorPoint) = 0;
  60.     virtual FW_CPoint     ContinueTracking(Environment* ev,
  61.                             const FW_CPoint& anchorPoint, 
  62.                             const FW_CPoint& previousPoint, 
  63.                             const FW_CPoint& currentPoint) = 0;
  64.     virtual FW_Boolean     EndTracking(Environment* ev,
  65.                             const FW_CPoint& anchorPoint, 
  66.                             const FW_CPoint& lastPoint) = 0;
  67.     
  68.     ODFacet*            GetFacet(Environment*) const
  69.                             {return fFacet;}
  70.     FW_CView*            GetView(Environment*) const
  71.                             {return fView;}
  72.                             
  73. //----------------------------------------------------------------------------------------
  74. //    Data Members
  75. //
  76. protected:
  77.     FW_CPoint            fAnchorPoint;
  78.     FW_CPoint            fPreviousPoint;
  79.     
  80. private:
  81.     ODFacet*            fFacet;    
  82.     FW_CView*            fView;    
  83. };
  84.  
  85. //========================================================================================
  86. //    class FW_CDropTracker
  87. //========================================================================================
  88.  
  89. class FW_CDropTracker : public FW_CBaseTracker
  90. {
  91. //----------------------------------------------------------------------------------------
  92. //    Initialization/Destruction
  93. //
  94. public:
  95.     FW_CDropTracker(Environment* ev, FW_CView* view, ODFacet* facet, FW_Boolean autoScroll = TRUE);
  96.     virtual ~FW_CDropTracker();
  97.     
  98. //----------------------------------------------------------------------------------------
  99. //    New API
  100. //
  101. public:
  102.     // ----- Dispatch tracking -----
  103.     void                 HandleBeginTracking(Environment *ev,
  104.                             const FW_CPoint& where,
  105.                             unsigned long dragAttributes);
  106.     void                HandleContinueTracking(Environment* ev,
  107.                             const FW_CPoint& where);
  108.     FW_Boolean             HandleEndTracking(Environment* ev,
  109.                             const FW_CPoint& where);
  110.  
  111.     // ----- Tracking -----
  112.     virtual FW_CPoint     BeginTracking(Environment* ev, 
  113.                             const FW_CPoint& anchorPoint);
  114.     virtual FW_CPoint     ContinueTracking(Environment* ev,
  115.                             const FW_CPoint& anchorPoint, 
  116.                             const FW_CPoint& previousPoint, 
  117.                             const FW_CPoint& currentPoint);
  118.     virtual FW_Boolean     EndTracking(Environment* ev,
  119.                             const FW_CPoint& anchorPoint, 
  120.                             const FW_CPoint& lastPoint);
  121.  
  122.     // ----- Drag Hilite -----
  123.     virtual void        ShowDragHilite(Environment* ev, ODShape* hiliteShape, FW_Boolean showInside);
  124.     virtual void        HideDragHilite(Environment* ev);
  125.  
  126.     // ----- Drag Attributes -----
  127.     FW_Boolean            IsInSourceFrame(Environment* ev) const;
  128.     unsigned long        GetDragAttributes(Environment* ev) const;
  129.  
  130. //----------------------------------------------------------------------------------------
  131. //    Internal API
  132. //
  133. protected:
  134.     void                PrivShowDefaultHilite(Environment* ev);
  135.     
  136. //----------------------------------------------------------------------------------------
  137. //    Data Members
  138. //
  139. protected:
  140.     unsigned long             fDragAttributes;
  141.     FW_CPrivBaseScroller*    fScroller;
  142.  
  143. #ifdef FW_BUILD_MAC
  144.     FW_Boolean                 fSavedHiliteState;        // Used during auto-scroll
  145.     FW_Boolean                fMacHiliteOn;
  146. #endif
  147.     FW_Boolean                fAutoScroll;    
  148.  
  149. #ifdef FW_DEBUG
  150.     FW_Boolean                fHandleBeginTrackingCalled;
  151. #endif
  152. };
  153.  
  154. //========================================================================================
  155. //    class FW_CTracker
  156. //========================================================================================
  157.  
  158. class FW_CTracker : public FW_CBaseTracker
  159. {
  160. //----------------------------------------------------------------------------------------
  161. //    Initialization/Destruction
  162. //
  163. public:
  164.     FW_CTracker(Environment* ev, FW_CView* view, ODFacet* facet, FW_Boolean waitMouseMoved = TRUE);
  165.     virtual ~FW_CTracker();
  166.     
  167. //----------------------------------------------------------------------------------------
  168. //    New API
  169. //
  170. public:
  171.     virtual FW_Boolean    Track(Environment* ev, const FW_CMouseEvent& theMouseEvent);
  172.  
  173. //----------------------------------------------------------------------------------------
  174. //    Data Members
  175. //
  176. protected:
  177.     FW_Boolean            fWaitMouseMoved;
  178. };
  179.  
  180. #endif